package com.kashin.sistema;

import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

public class Orden {
	private Cliente cliente;
	
	private int nro_orden;
	private Date fecha = null;
	private int aparato_cod;
	private int marca_cod;
	private String modelo = null;
	private String nro_serie = null;
	private char estado_gabinete;
	//TODO: hacer que en vez de ser accesorios del 1 al 5 sean una lista de accesorios
	//private List<Integer> accesorios = new ArrayList<Integer>() ;
	private int accesorio_cod1;
	private int accesorio_cod2;
	private int accesorio_cod3;
	private int accesorio_cod4;
	private int accesorio_cod5;
	private String falla = null;
	private String observacion = null;
	private char GDP;
	private int casa_venta_cod;
	private int nro_venta;
	private Date fecha_venta = null;
	private int cod_garantia;
	private String nro_estampilla = null;
	private Date fecha_reparacion = null;
	
	private int tecnico_cod;
	
	public Orden() {
		cliente = new Cliente();
	}
	
	public String getSiguienteNroOrdenQuery() {
		return "SELECT MAX(nro_orden)+1 FROM Matsushita.Orden;";
	}
	
	public String getSubmitQuery() throws InvalidClientException {
		if(cliente.getNro_cliente() == -1) {
			throw new InvalidClientException();
		}
		
		return "INSERT INTO Matsushita.Orden (fecha, tecnico_cod, nro_cliente, aparato_cod, marca_cod, " +
				"modelo, nro_serie, estado_gabinete, accesorio_cod1, accesorio_cod2, accesorio_cod3, " +
				"accesorio_cod4, accesorio_cod5, falla, observacion, GDP, casa_venta_cod, nro_venta, " +
				"fecha_venta, cod_garantia, nro_estampilla, fecha_reparacion) " +
				"VALUES ("+fecha+", " + tecnico_cod+", "+cliente.getNro_cliente()+", " 
				+aparato_cod+", "+marca_cod+", "+modelo+", "+nro_serie+", "
				+estado_gabinete+", "+accesorio_cod1+", "+accesorio_cod2+", " 
				+accesorio_cod3+", "+accesorio_cod4+","+accesorio_cod5+", " 
				+falla+", "+observacion+", "+GDP+", "+casa_venta_cod+", " 
				+nro_venta+", "+fecha_venta+", "+cod_garantia+", "
				+nro_estampilla+", "+fecha_reparacion+");";
	}
	
	public String getBuscarOrdenQuery() {
		return "SELECT * FROM Matsushita.Orden WHERE nro_orden = "+nro_orden+";";
	}
	
	public int getTecnico_cod() {
		return tecnico_cod;
	}
	public void setTecnico_cod(int tecnico_cod) {
		this.tecnico_cod = tecnico_cod;
	}
	
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public int getNro_orden() {
		return nro_orden;
	}
	public void setNro_orden(int nro_orden) {
		this.nro_orden = nro_orden;
	}
	public Date getFecha() {
		return fecha;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	public int getAparato_cod() {
		return aparato_cod;
	}
	public void setAparato_cod(int aparato_cod) {
		this.aparato_cod = aparato_cod;
	}
	public int getMarca_cod() {
		return marca_cod;
	}
	public void setMarca_cod(int marca_cod) {
		this.marca_cod = marca_cod;
	}
	public String getModelo() {
		return modelo;
	}
	public void setModelo(String modelo) {
		this.modelo = modelo;
	}
	public String getNro_serie() {
		return nro_serie;
	}
	public void setNro_serie(String nro_serie) {
		this.nro_serie = nro_serie;
	}
	public char getEstado_gabinete() {
		return estado_gabinete;
	}
	public void setEstado_gabinete(char estado_gabinete) {
		this.estado_gabinete = estado_gabinete;
	}
	public int getAccesorio_cod1() {
		return accesorio_cod1;
	}
	public void setAccesorio_cod1(int accesorio_cod1) {
		this.accesorio_cod1 = accesorio_cod1;
	}
	public int getAccesorio_cod2() {
		return accesorio_cod2;
	}
	public void setAccesorio_cod2(int accesorio_cod2) {
		this.accesorio_cod2 = accesorio_cod2;
	}
	public int getAccesorio_cod3() {
		return accesorio_cod3;
	}
	public void setAccesorio_cod3(int accesorio_cod3) {
		this.accesorio_cod3 = accesorio_cod3;
	}
	public int getAccesorio_cod4() {
		return accesorio_cod4;
	}
	public void setAccesorio_cod4(int accesorio_cod4) {
		this.accesorio_cod4 = accesorio_cod4;
	}
	public int getAccesorio_cod5() {
		return accesorio_cod5;
	}
	public void setAccesorio_cod5(int accesorio_cod5) {
		this.accesorio_cod5 = accesorio_cod5;
	}
	public String getFalla() {
		return falla;
	}
	public void setFalla(String falla) {
		this.falla = falla;
	}
	public String getObservacion() {
		return observacion;
	}
	public void setObservacion(String observacion) {
		this.observacion = observacion;
	}
	public char getGDP() {
		return GDP;
	}
	public void setGDP(char gDP) {
		GDP = gDP;
	}
	public int getCasa_venta_cod() {
		return casa_venta_cod;
	}
	public void setCasa_venta_cod(int casa_venta_cod) {
		this.casa_venta_cod = casa_venta_cod;
	}
	public int getNro_venta() {
		return nro_venta;
	}
	public void setNro_venta(int nro_venta) {
		this.nro_venta = nro_venta;
	}
	public Date getFecha_venta() {
		return fecha_venta;
	}
	public void setFecha_venta(Date fecha_venta) {
		this.fecha_venta = fecha_venta;
	}
	public int getCod_garantia() {
		return cod_garantia;
	}
	public void setCod_garantia(int cod_garantia) {
		this.cod_garantia = cod_garantia;
	}
	public String getNro_estampilla() {
		return nro_estampilla;
	}
	public void setNro_estampilla(String nro_estampilla) {
		this.nro_estampilla = nro_estampilla;
	}
	public Date getFecha_reparacion() {
		return fecha_reparacion;
	}
	public void setFecha_reparacion(Date fecha_reparacion) {
		this.fecha_reparacion = fecha_reparacion;
	}
	
}
